package com.nut.spp.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 订单状态 0待付款 1已取消 2已付款 3已发货 4已完成 5交易关闭
 * 订单状态：
 * 待付款：买家下单未付款
 * 已付款：买家付款待发货或服务类待使用
 * 已发货：1.实物类：商家已发货；2.虚拟服务类：无该类型
 * 已完成：1.实物类买家确认收货、虚拟服务类核销完成；2.自动确认收货：（实物类：已发货订单15天未确认收货自动完成、虚拟服务类：无自动逻辑
 * 已取消：待付款订单取消订单
 * 交易关闭：已付款订单退货、全部退款
 */
public enum OrderStatusEnum {

    INIT(0, "待付款"),
    CANCEL(1, "已取消"),
    HAS_PAID(2, "已付款"),
    HAS_SEND(3, "已发货"),
    DONE(4, "已完成"),
    CLOSED(5, "交易关闭"),
    ;

    private Integer value;

    private String desc;

    OrderStatusEnum(final Integer value, final String desc) {
        this.value = value;
        this.desc = desc;
    }

    private static Map<Integer, OrderStatusEnum> map = new HashMap<>();

    static {
        for (OrderStatusEnum stepEnum : OrderStatusEnum.values()) {
            map.put(stepEnum.value, stepEnum);
        }
    }

    public static OrderStatusEnum valueOf(int value) {
        return map.get(value);
    }

    public Integer getValue() {
        return this.value;
    }

    public String getDesc() {
        return this.desc;
    }
}
